<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
   
   <meta name="description" content="string operations">
    
    <meta name="author" content="John S. Urban" >
    <link rel="icon" href="../favicon.png">

    <title>M_strings_oop &ndash; M_strings</title>

    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/pygments.css" rel="stylesheet">
    <link href="../css/font-awesome.min.css" rel="stylesheet">
    <link href="../css/local.css" rel="stylesheet">
    
    <link  href="../tipuesearch/tipuesearch.css" rel="stylesheet">
    
    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    
    <script src="../js/jquery-2.1.3.min.js"></script>
    <script src="../js/svg-pan-zoom.min.js"></script>

  </head>

  <body>

    <!-- Fixed navbar -->
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="../index.html">M_strings </a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
        
            <li class="dropdown hidden-xs visible-sm visible-md hidden-lg">
              <a href="#" class="dropdown-toggle"
              data-toggle="dropdown" role="button"
              aria-haspopup="true"
     aria-expanded="false">Contents <span class="caret"></span></a>
        <ul class="dropdown-menu">
          
              
            <li><a href="../lists/files.html">Source Files</a></li>
        
        
        
            <li><a href="../lists/modules.html">Modules</a></li>
        
            
                                
            <li><a href="../lists/procedures.html">Procedures</a></li>
        
               
            <li><a href="../lists/types.html">Derived Types</a></li>
        
        
            </ul>
            </li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li>

                             
<li class="visible-xs hidden-sm visible-lg"><a href="../lists/types.html">Derived Types</a></li>


          </ul>
        
        <form action="../search.html" class="navbar-form navbar-right" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
        </div>
<!--
        <button type="submit" class="btn btn-default">Submit</button>
-->
        </form>
        
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">
    
  
  <div class="row">
    <h1>M_strings_oop 
    <small>Module</small>
    
    </h1>
    
<div class="row">
  <div class="col-lg-12">
<div class="well well-sm">
  <ul class="list-inline" style="margin-bottom:0px;display:inline">
     
     
     
     
    
    
     <li><i class="fa fa-list-ol"></i>
       <a data-toggle="tooltip"
    data-placement="bottom" data-html="true"
    title=" 8.8% of total for modules and submodules.">341 statements</a>
     </li> 
     
     
     
    <li><i class="fa fa-code"></i><a href="../src/M_strings_oop.f90"> Source File</a></li>
     
     
  </ul>
  <ol class="breadcrumb in-well text-right">
  
    
     <li><a href='../sourcefile/m_strings_oop.f90.html'>M_strings_oop.f90</a></li>
    
  
     <li class="active">M_strings_oop</li>
  </ol>
</div>
</div>
</div>
<script>
  $(function () {
  $('[data-toggle="tooltip"]').tooltip()
  })
</script>

  </div>
  
  <div class="row">
    <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg">
    
<div id="sidebar">
  
<h3>Contents</h3>
 










<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#inters-0">Interfaces</a></h3></div>
  <div id="inters-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#interface-string">string</a>
      
    </div>
  </div>
</div>




<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#types-0">Derived Types</a></h3></div>
  <div id="types-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#type-string">string</a>
      
    </div>
  </div>
</div>



<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-0">Functions</a></h3></div>
  <div id="funcs-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#proc-p">p</a>
      
    </div>
  </div>
</div>











</div>

    </div>
    
    <div class="col-md-9" id='text'>
    <h2 id="name">NAME</h2>
<div class="codehilite"><pre><span></span><code>M_strings_oop(3f) - [M_strings::INTRO] OOP Fortran string module
</code></pre></div>

<h2 id="synopsis">SYNOPSIS</h2>
<div class="codehilite"><pre><span></span><code>use M_strings_oop
</code></pre></div>

<h2 id="description">DESCRIPTION</h2>
<div class="codehilite"><pre><span></span><code><span class="nv">The</span> <span class="nv">M_strings</span><span class="ss">(</span><span class="mi">3</span><span class="nv">fm</span><span class="ss">)</span> <span class="nv">module</span> <span class="nv">is</span> <span class="nv">a</span> <span class="nv">collection</span> <span class="nv">of</span> <span class="nv">Fortran</span> <span class="nv">procedures</span>
<span class="nv">that</span> <span class="nv">supplement</span> <span class="nv">the</span> <span class="nv">built</span><span class="o">-</span><span class="nv">in</span> <span class="nv">intrinsic</span> <span class="nv">string</span> <span class="nv">routines</span>. <span class="nv">Routines</span>
<span class="k">for</span> <span class="nv">parsing</span>, <span class="nv">tokenizing</span>, <span class="nv">changing</span> <span class="nv">case</span>, <span class="nv">substituting</span> <span class="nv">new</span> <span class="nv">strings</span> <span class="k">for</span>
<span class="nv">substrings</span>, <span class="nv">locating</span> <span class="nv">strings</span> <span class="nv">with</span> <span class="nv">simple</span> <span class="nv">wildcard</span> <span class="nv">expressions</span>, <span class="nv">removing</span>
<span class="nv">tabs</span> <span class="nv">and</span> <span class="nv">line</span> <span class="nv">terminators</span> <span class="nv">and</span> <span class="nv">other</span> <span class="nv">string</span> <span class="nv">manipulations</span> <span class="nv">are</span> <span class="nv">included</span>.

<span class="nv">M_strings_oop</span><span class="ss">(</span><span class="mi">3</span><span class="nv">fm</span><span class="ss">)</span> <span class="nv">is</span> <span class="nv">a</span> <span class="nv">companion</span> <span class="nv">module</span> <span class="nv">that</span> <span class="nv">provides</span> <span class="nv">an</span> <span class="nv">OOP</span> <span class="nv">interface</span>
<span class="nv">to</span> <span class="nv">the</span> <span class="nv">M_strings</span> <span class="nv">module</span>.
</code></pre></div>

<h2 id="see-also">SEE ALSO</h2>
<div class="codehilite"><pre><span></span><code><span class="n">There</span> <span class="n">are</span> <span class="n">additional</span> <span class="n">routines</span> <span class="n">in</span> <span class="n">other</span> <span class="n">GPF</span> <span class="n">modules</span> <span class="k">for</span> <span class="n">working</span> <span class="n">with</span>
<span class="n">expressions</span> <span class="p">(</span><span class="n">M_calculator</span><span class="p">),</span> <span class="kt">time</span> <span class="n">strings</span> <span class="p">(</span><span class="n">M_time</span><span class="p">),</span> <span class="n">random</span> <span class="n">strings</span>
<span class="p">(</span><span class="n">M_random</span><span class="p">,</span> <span class="n">M_uuid</span><span class="p">),</span> <span class="n">lists</span> <span class="p">(</span><span class="n">M_list</span><span class="p">),</span> <span class="k">and</span> <span class="n">interfacing</span> <span class="n">with</span> <span class="n">the</span> <span class="n">C</span> <span class="n">regular</span>
<span class="n">expression</span> <span class="n">library</span> <span class="p">(</span><span class="n">M_regex</span><span class="p">).</span>
</code></pre></div>

<h2 id="examples">EXAMPLES</h2>
<div class="codehilite"><pre><span></span><code><span class="n">Each</span> <span class="n">of</span> <span class="n">the</span> <span class="n">procedural</span> <span class="n">functions</span> <span class="ow">in</span> <span class="n">M_strings</span><span class="p">(</span><span class="mi">3</span><span class="n">fm</span><span class="p">)</span> <span class="n">includes</span> <span class="n">an</span> <span class="n">example</span>
<span class="n">program</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">corresponding</span> <span class="n">man</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="n">page</span> <span class="k">for</span> <span class="n">the</span> <span class="n">function</span><span class="o">.</span> <span class="n">The</span>
<span class="n">object</span><span class="o">-</span><span class="n">oriented</span> <span class="n">interface</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">have</span> <span class="n">individual</span> <span class="n">man</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="n">pages</span><span class="p">,</span>
<span class="n">but</span> <span class="k">is</span> <span class="n">instead</span> <span class="n">demonstrated</span> <span class="n">using</span> <span class="n">the</span> <span class="n">following</span> <span class="n">example</span> <span class="n">program</span><span class="p">:</span>

 <span class="n">program</span> <span class="n">demo_M_strings_oop</span>
 <span class="o">!</span>
 <span class="o">!</span> <span class="n">This</span> <span class="k">is</span> <span class="n">an</span> <span class="n">example</span> <span class="n">using</span> <span class="n">the</span> <span class="n">object</span><span class="o">-</span><span class="n">oriented</span> <span class="k">class</span><span class="o">/</span><span class="n">type</span> <span class="n">model</span>
 <span class="o">!</span> <span class="n">defined</span> <span class="ow">in</span> <span class="n">M_strings_oop</span>
 <span class="o">!</span> <span class="n">This</span> <span class="k">is</span> <span class="n">essentially</span> <span class="n">the</span> <span class="n">same</span> <span class="n">functionality</span> <span class="k">as</span> <span class="n">the</span> <span class="n">procedures</span>
 <span class="o">!</span> <span class="n">combined</span> <span class="n">with</span> <span class="n">several</span> <span class="n">Fortran</span> <span class="n">intrinsics</span> <span class="ow">and</span> <span class="n">overloaded</span> <span class="n">operators</span>
 <span class="o">!</span>
 <span class="n">use</span> <span class="n">M_strings_oop</span><span class="p">,</span><span class="n">only</span> <span class="p">:</span> <span class="n">string</span><span class="p">,</span> <span class="n">p</span>
 <span class="n">implicit</span> <span class="n">none</span>
 <span class="n">TYPE</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="p">::</span> <span class="n">str1</span>
 <span class="n">TYPE</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="p">::</span> <span class="n">str2</span>
 <span class="n">TYPE</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="p">::</span> <span class="n">str3</span>
 <span class="n">TYPE</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="p">::</span> <span class="n">str4</span>
 <span class="o">!==============================================================================</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;exercise the M_STRING_OOP module interface&#39;</span>
   <span class="o">!</span> <span class="n">draw</span> <span class="n">a</span> <span class="k">break</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">output</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;Call methods of type(STRING)&#39;</span>
   <span class="o">!</span> <span class="n">define</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">)</span> <span class="n">with</span> <span class="n">constructor</span>
   <span class="n">str2</span><span class="o">=</span><span class="n">string</span><span class="p">(</span><span class="s1">&#39;   This  is  a  String!       &#39;</span><span class="p">)</span>
   <span class="n">str4</span><span class="o">=</span><span class="n">string</span><span class="p">(</span><span class="s1">&#39; a  String &#39;</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="o">!</span> <span class="nb">print</span> <span class="n">members</span> <span class="n">of</span> <span class="n">type</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str2</span><span class="si">%s</span><span class="s1">tr is ................ &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="nb">str</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">LEN</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">202</span><span class="p">)</span><span class="s1">&#39;len ........................ &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="n">len</span><span class="p">()</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">INDEX</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">202</span><span class="p">)</span><span class="s1">&#39;len_trim ................... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="n">len_trim</span><span class="p">()</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">INDEX</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">202</span><span class="p">)</span><span class="s1">&#39;index(&quot;is&quot;)................. &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="n">index</span><span class="p">(</span><span class="s2">&quot;is&quot;</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">INDEX</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">202</span><span class="p">)</span><span class="s1">&#39;index(&quot;is&quot;,back=.T.) ....... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="n">index</span><span class="p">(</span><span class="s2">&quot;is&quot;</span><span class="p">,</span><span class="n">back</span><span class="o">=.</span><span class="n">TRUE</span><span class="o">.</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">output</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">)</span> <span class="n">with</span> <span class="o">%</span><span class="nb">str</span> <span class="n">all</span> <span class="n">uppercase</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;upper ...................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">upper</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">output</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">)</span> <span class="n">with</span> <span class="o">%</span><span class="nb">str</span> <span class="n">all</span> <span class="n">miniscule</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;lower ...................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">lower</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">output</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">)</span> <span class="n">with</span> <span class="o">%</span><span class="nb">str</span> <span class="n">reversed</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;reverse .................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">reverse</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">ADJUSTL</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;adjustl .................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">adjustl</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">ADJUSTR</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;adjustr .................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">adjustr</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">center</span> <span class="n">string</span> <span class="ow">in</span> <span class="n">current</span> <span class="n">string</span> <span class="n">length</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;adjustc .................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">adjustc</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">center</span> <span class="n">string</span> <span class="ow">in</span> <span class="n">string</span> <span class="n">length</span> <span class="n">of</span> <span class="n">NN</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;adjustc(49) ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">adjustc</span><span class="p">(</span><span class="mi">49</span><span class="p">))</span>
   <span class="o">!</span> <span class="n">force</span> <span class="o">%</span><span class="nb">str</span> <span class="n">to</span> <span class="n">be</span> <span class="n">NN</span> <span class="n">characters</span> <span class="n">long</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;lenset(49) ................. &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">lenset</span><span class="p">(</span><span class="mi">49</span><span class="p">))</span>
   <span class="o">!</span> <span class="n">same</span> <span class="k">as</span> <span class="n">intrinsic</span> <span class="n">TRIM</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;trim ....................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">trim</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">trim</span> <span class="n">leading</span> <span class="ow">and</span> <span class="n">trailing</span> <span class="n">spaces</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;crop ....................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">crop</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">SUBSTITUTE</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;substitute(&quot;This&quot;,&quot;Here&quot;) .. &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">substitute</span><span class="p">(</span><span class="s2">&quot;This&quot;</span><span class="p">,</span><span class="s2">&quot;Here&quot;</span><span class="p">))</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">COMPACT</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;compact .................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">compact</span><span class="p">())</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;compact(&quot;&quot;) ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">compact</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">))</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;compact(&quot;:&quot;) ............... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">compact</span><span class="p">(</span><span class="s2">&quot;:&quot;</span><span class="p">))</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">TRANSLITERATE</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;transliterate(&quot;aei&quot;,&quot;VWX&quot;) . &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">transliterate</span><span class="p">(</span><span class="s2">&quot;aei&quot;</span><span class="p">,</span><span class="s2">&quot;VWX&quot;</span><span class="p">))</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;transliterate(&quot;aeiou&quot;,&quot; &quot;) . &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">transliterate</span><span class="p">(</span><span class="s2">&quot;aeiou&quot;</span><span class="p">,</span><span class="s2">&quot; &quot;</span><span class="p">))</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;transliterate(&quot;aeiou&quot;,&quot;&quot;) .. &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">transliterate</span><span class="p">(</span><span class="s2">&quot;aeiou&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">))</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;transliterate(&quot; aeiou&quot;,&quot;&quot;) . &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">transliterate</span><span class="p">(</span><span class="s2">&quot; aeiou&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">))</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">SWITCH</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">404</span><span class="p">)</span><span class="s1">&#39;chars .................... . &#39;</span><span class="p">,</span><span class="n">str4</span><span class="o">%</span><span class="n">chars</span><span class="p">()</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">str2</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;</span><span class="se">\t\t</span><span class="s1">Some tabs</span><span class="se">\t</span><span class="s1">   x</span><span class="se">\b</span><span class="s1">X &#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str2</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;expand ..................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">expand</span><span class="p">())</span>
   <span class="n">str2</span><span class="o">=</span><span class="n">str2</span><span class="o">%</span><span class="n">expand</span><span class="p">()</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">NOTABS</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;notabs ..................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">notabs</span><span class="p">())</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">NOESC</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;noesc ...................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span><span class="o">%</span><span class="n">noesc</span><span class="p">())</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;Casting to numeric variables&#39;</span>
   <span class="n">str3</span><span class="o">=</span><span class="n">string</span><span class="p">(</span><span class="s1">&#39;   12.345678901234567e1        &#39;</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str3</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str3</span><span class="o">%</span><span class="nb">str</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">STRING_TO_VALUE</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;int  ....................... &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="nb nb-Type">int</span><span class="p">()</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">STRING_TO_VALUE</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;real ....................... &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="n">real</span><span class="p">()</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">STRING_TO_VALUE</span><span class="p">()</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;dble ....................... &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="n">dble</span><span class="p">()</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;Matching simple globbing patterns&#39;</span>
   <span class="n">str3</span><span class="o">=</span><span class="n">string</span><span class="p">(</span><span class="s1">&#39;   12.345678901234567e1        &#39;</span><span class="p">)</span>
   <span class="n">str3</span><span class="o">=</span><span class="n">string</span><span class="p">(</span><span class="s1">&#39;Four score and seven years ago&#39;</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str3</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str3</span><span class="o">%</span><span class="nb">str</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">MATCHW</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;match(&quot;Fo*&quot;) ............... &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="k">match</span><span class="p">(</span><span class="s2">&quot;Fo*&quot;</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">MATCHW</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;match(&quot;and&quot;) ............... &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="k">match</span><span class="p">(</span><span class="s2">&quot;and&quot;</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">calls</span> <span class="n">M_strings</span> <span class="n">procedure</span> <span class="n">MATCHW</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;match(&quot;*and*&quot;) ............. &#39;</span><span class="p">,</span> <span class="n">str3</span><span class="o">%</span><span class="k">match</span><span class="p">(</span><span class="s2">&quot;*and*&quot;</span><span class="p">)</span>

   <span class="mi">101</span> <span class="n">format</span><span class="p">(</span><span class="mi">1</span><span class="n">x</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="s2">&quot;[&quot;</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="s2">&quot;]&quot;</span><span class="p">)</span>
   <span class="mi">202</span> <span class="n">format</span><span class="p">(</span><span class="mi">1</span><span class="n">x</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">i0</span><span class="p">)</span>
   <span class="mi">303</span> <span class="n">format</span><span class="p">(</span><span class="mi">1</span><span class="n">x</span><span class="p">,</span><span class="o">*</span><span class="p">(</span><span class="n">l3</span><span class="p">))</span>
   <span class="mi">404</span> <span class="n">format</span><span class="p">(</span><span class="mi">1</span><span class="n">x</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="o">*</span><span class="p">(</span><span class="s2">&quot;[&quot;</span><span class="p">,</span><span class="n">a1</span><span class="p">,</span><span class="s2">&quot;]&quot;</span><span class="p">:))</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;OVERLOADED OPERATORS (add and subtract,return TYPE(STRING))&#39;</span>
   <span class="n">str1</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;123.456&#39;</span>
   <span class="n">str2</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;AaBbCcDdEeFfGgHhIiJj AaBbCcDdEeFfGgHhIiJj&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str1</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str1</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str2</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 + str2 ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">+</span> <span class="n">str2</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">a</span> <span class="n">string</span> <span class="n">that</span> <span class="n">looks</span> <span class="n">like</span> <span class="n">a</span> <span class="n">numeric</span> <span class="n">value</span> <span class="n">can</span> <span class="n">have</span> <span class="n">a</span> <span class="n">value</span> <span class="n">added</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 + 20000 ............... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">+</span><span class="mi">20000</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 - 20.0 ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">-</span><span class="mf">20.0</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str2 - &quot;Aa&quot; (removes ALL) .. &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str2</span> <span class="o">-</span> <span class="s1">&#39;Aa&#39;</span><span class="p">)</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;OVERLOADED OPERATORS (multiply,return TYPE(STRING))&#39;</span>
   <span class="n">str1</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;AaBbCcDdEeFfGgHhIiJj&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str1</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str1</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 * 3 ................... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">*</span> <span class="mi">3</span><span class="p">)</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;OVERLOADED OPERATORS (//,return TYPE(STRING))&#39;</span>
   <span class="n">str1</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;String one:&#39;</span>
   <span class="n">str2</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;String two:&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str1</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str1</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str2</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 // str2 ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">//</span> <span class="n">str2</span><span class="p">)</span>
   <span class="o">!</span> <span class="n">numeric</span> <span class="n">values</span> <span class="n">are</span> <span class="n">converted</span> <span class="n">to</span> <span class="n">strings</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 // 20000 ............... &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">//</span> <span class="mi">20000</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;str1 // 20.0 ................ &#39;</span><span class="p">,</span><span class="n">p</span><span class="p">(</span><span class="n">str1</span> <span class="o">//</span> <span class="mf">20.0</span><span class="p">)</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;OVERLOADED OPERATORS (logical comparisons,return logical)&#39;</span>
   <span class="o">!</span> <span class="n">NOTE</span><span class="p">:</span> <span class="n">comparisons</span> <span class="n">are</span> <span class="n">performed</span> <span class="n">on</span> <span class="n">the</span> <span class="n">character</span> <span class="n">variable</span> <span class="n">members</span>
   <span class="o">!</span>       <span class="n">of</span> <span class="n">the</span> <span class="n">type</span><span class="p">(</span><span class="n">string</span><span class="p">)</span>
   <span class="n">str1</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;abcdefghij&#39;</span>
   <span class="n">str2</span><span class="o">%</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;klmnopqrst&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str1</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str1</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">101</span><span class="p">)</span><span class="s1">&#39;str2</span><span class="si">%s</span><span class="s1">tr ................... &#39;</span><span class="p">,</span><span class="n">str2</span><span class="o">%</span><span class="nb">str</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;: EQ LT GT LE GE NE&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;compare str1 to str1&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">303</span><span class="p">)</span><span class="n">str1</span><span class="o">.</span><span class="n">eq</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">lt</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">gt</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">le</span><span class="o">.</span><span class="n">str1</span> <span class="o">&amp;</span>
              <span class="o">&amp;</span> <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">ge</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">ne</span><span class="o">.</span><span class="n">str1</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;compare str1 to str2&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">303</span><span class="p">)</span><span class="n">str1</span><span class="o">.</span><span class="n">eq</span><span class="o">.</span><span class="n">str2</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">lt</span><span class="o">.</span><span class="n">str2</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">gt</span><span class="o">.</span><span class="n">str2</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">le</span><span class="o">.</span><span class="n">str2</span> <span class="o">&amp;</span>
              <span class="o">&amp;</span> <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">ge</span><span class="o">.</span><span class="n">str2</span>  <span class="p">,</span><span class="n">str1</span><span class="o">.</span><span class="n">ne</span><span class="o">.</span><span class="n">str2</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="s1">&#39;compare str2 to str1&#39;</span>
   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="mi">303</span><span class="p">)</span><span class="n">str2</span><span class="o">.</span><span class="n">eq</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str2</span><span class="o">.</span><span class="n">lt</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str2</span><span class="o">.</span><span class="n">gt</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str2</span><span class="o">.</span><span class="n">le</span><span class="o">.</span><span class="n">str1</span> <span class="o">&amp;</span>
              <span class="o">&amp;</span> <span class="p">,</span><span class="n">str2</span><span class="o">.</span><span class="n">ge</span><span class="o">.</span><span class="n">str1</span>  <span class="p">,</span><span class="n">str2</span><span class="o">.</span><span class="n">ne</span><span class="o">.</span><span class="n">str1</span>

   <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="n">repeat</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span><span class="mi">78</span><span class="p">)</span>

 <span class="n">end</span> <span class="n">program</span> <span class="n">demo_M_strings_oop</span>
</code></pre></div>

<p>Expected output</p>
<div class="codehilite"><pre><span></span><code>  <span class="n">exercise</span> <span class="n">the</span> <span class="n">M_STRING_OOP</span> <span class="n">module</span> <span class="n">interface</span>
  <span class="o">=============================================================================</span>
  <span class="n">Call</span> <span class="n">methods</span> <span class="n">of</span> <span class="n">type</span><span class="p">(</span><span class="n">STRING</span><span class="p">)</span>
  <span class="o">=============================================================================</span>
  <span class="n">str2</span><span class="o">%</span><span class="n">str</span> <span class="n">is</span> <span class="p">................</span> <span class="p">[</span>   <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">len</span> <span class="p">........................</span> <span class="mi">36</span>
  <span class="n">len_trim</span> <span class="p">...................</span> <span class="mi">23</span>
  <span class="n">index</span><span class="p">(</span><span class="s">&quot;is&quot;</span><span class="p">).................</span> <span class="mi">6</span>
  <span class="n">index</span><span class="p">(</span><span class="s">&quot;is&quot;</span><span class="p">,</span><span class="n">back</span><span class="o">=</span><span class="p">.</span><span class="n">T</span><span class="p">.)</span> <span class="p">.......</span> <span class="mi">10</span>
  <span class="n">upper</span> <span class="p">......................</span> <span class="p">[</span>   <span class="n">THIS</span>  <span class="n">IS</span>  <span class="n">A</span>  <span class="n">STRING</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">lower</span> <span class="p">......................</span> <span class="p">[</span>   <span class="n">this</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">string</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">reverse</span> <span class="p">....................</span> <span class="p">[</span>             <span class="o">!</span><span class="n">gnirtS</span>  <span class="n">a</span>  <span class="n">si</span>  <span class="n">sihT</span>   <span class="p">]</span>
  <span class="n">adjustl</span> <span class="p">....................</span> <span class="p">[</span><span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>                <span class="p">]</span>
  <span class="n">adjustr</span> <span class="p">....................</span> <span class="p">[</span>                <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span><span class="p">]</span>
  <span class="n">adjustc</span> <span class="p">....................</span> <span class="p">[</span>        <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>        <span class="p">]</span>
  <span class="n">adjustc</span><span class="p">(</span><span class="mi">49</span><span class="p">)</span> <span class="p">................</span> <span class="p">[</span>              <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>               <span class="p">]</span>
  <span class="n">lenset</span><span class="p">(</span><span class="mi">49</span><span class="p">)</span> <span class="p">.................</span> <span class="p">[</span>   <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>                          <span class="p">]</span>
  <span class="n">trim</span> <span class="p">.......................</span> <span class="p">[</span>   <span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span><span class="p">]</span>
  <span class="n">crop</span> <span class="p">.......................</span> <span class="p">[</span><span class="n">This</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span><span class="p">]</span>
  <span class="n">substitute</span><span class="p">(</span><span class="s">&quot;This&quot;</span><span class="p">,</span><span class="s">&quot;Here&quot;</span><span class="p">)</span> <span class="p">..</span> <span class="p">[</span>   <span class="n">Here</span>  <span class="n">is</span>  <span class="n">a</span>  <span class="n">String</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">compact</span> <span class="p">....................</span> <span class="p">[</span><span class="n">This</span> <span class="n">is</span> <span class="n">a</span> <span class="n">String</span><span class="o">!</span><span class="p">]</span>
  <span class="n">compact</span><span class="p">(</span><span class="s">&quot;&quot;</span><span class="p">)</span> <span class="p">................</span> <span class="p">[</span><span class="n">ThisisaString</span><span class="o">!</span><span class="p">]</span>
  <span class="n">compact</span><span class="p">(</span><span class="s">&quot;:&quot;</span><span class="p">)</span> <span class="p">...............</span> <span class="p">[</span><span class="nl">This</span><span class="p">:</span><span class="nl">is</span><span class="p">:</span><span class="nl">a</span><span class="p">:</span><span class="n">String</span><span class="o">!</span><span class="p">]</span>
  <span class="n">transliterate</span><span class="p">(</span><span class="s">&quot;aei&quot;</span><span class="p">,</span><span class="s">&quot;VWX&quot;</span><span class="p">)</span> <span class="p">.</span> <span class="p">[</span>   <span class="n">ThXs</span>  <span class="n">Xs</span>  <span class="n">V</span>  <span class="n">StrXng</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">transliterate</span><span class="p">(</span><span class="s">&quot;aeiou&quot;</span><span class="p">,</span><span class="s">&quot; &quot;</span><span class="p">)</span> <span class="p">.</span> <span class="p">[</span>   <span class="n">Th</span> <span class="n">s</span>   <span class="n">s</span>     <span class="n">Str</span> <span class="n">ng</span><span class="o">!</span>             <span class="p">]</span>
  <span class="n">transliterate</span><span class="p">(</span><span class="s">&quot;aeiou&quot;</span><span class="p">,</span><span class="s">&quot;&quot;</span><span class="p">)</span> <span class="p">..</span> <span class="p">[</span>   <span class="n">Ths</span>  <span class="n">s</span>    <span class="n">Strng</span><span class="o">!</span>                 <span class="p">]</span>
  <span class="n">transliterate</span><span class="p">(</span><span class="s">&quot; aeiou&quot;</span><span class="p">,</span><span class="s">&quot;&quot;</span><span class="p">)</span> <span class="p">.</span> <span class="p">[</span><span class="n">ThssStrng</span><span class="o">!</span>                          <span class="p">]</span>
  <span class="n">chars</span> <span class="p">....................</span> <span class="p">.</span> <span class="p">[</span> <span class="p">][</span><span class="n">a</span><span class="p">][</span> <span class="p">][</span><span class="n">s</span><span class="p">][</span><span class="n">t</span><span class="p">][</span><span class="n">r</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">n</span><span class="p">][</span><span class="n">g</span><span class="p">][</span> <span class="p">]</span>
  <span class="o">=============================================================================</span>
  <span class="n">str2</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="err">\</span><span class="n">t</span><span class="err">\</span><span class="n">tSome</span> <span class="n">tabs</span><span class="err">\</span><span class="n">t</span>   <span class="n">x</span><span class="err">\</span><span class="n">bX</span> <span class="p">]</span>
  <span class="n">expand</span> <span class="p">.....................</span> <span class="p">[</span>         <span class="n">Some</span> <span class="n">tabs</span>          <span class="n">x</span>   <span class="n">X</span><span class="p">]</span>
  <span class="n">notabs</span> <span class="p">.....................</span> <span class="p">[</span>                <span class="n">Some</span> <span class="n">tabs</span>          <span class="n">x</span>    <span class="n">X</span><span class="p">]</span>
  <span class="n">noesc</span> <span class="p">......................</span> <span class="p">[</span>  <span class="n">Some</span> <span class="n">tabs</span>    <span class="n">x</span> <span class="n">X</span><span class="p">]</span>
  <span class="o">=============================================================================</span>
  <span class="n">Casting</span> <span class="n">to</span> <span class="n">numeric</span> <span class="n">variables</span>
  <span class="n">str3</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span>   <span class="mf">12.345678901234567e1</span>        <span class="p">]</span>
  <span class="kt">int</span>  <span class="p">.......................</span>          <span class="mi">123</span>
  <span class="n">real</span> <span class="p">.......................</span>    <span class="mf">123.456787</span>
  <span class="n">dble</span> <span class="p">.......................</span>    <span class="mf">123.45678901234567</span>
  <span class="o">=============================================================================</span>
  <span class="n">Matching</span> <span class="n">simple</span> <span class="n">globbing</span> <span class="n">patterns</span>
  <span class="n">str3</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">Four</span> <span class="n">score</span> <span class="n">and</span> <span class="n">seven</span> <span class="n">years</span> <span class="n">ago</span><span class="p">]</span>
  <span class="n">match</span><span class="p">(</span><span class="s">&quot;Fo*&quot;</span><span class="p">)</span> <span class="p">...............</span>  <span class="n">T</span>
  <span class="n">match</span><span class="p">(</span><span class="s">&quot;and&quot;</span><span class="p">)</span> <span class="p">...............</span>  <span class="n">F</span>
  <span class="n">match</span><span class="p">(</span><span class="s">&quot;*and*&quot;</span><span class="p">)</span> <span class="p">.............</span>  <span class="n">T</span>
  <span class="o">==============================================================================</span>
  <span class="n">OVERLOADED</span> <span class="n">OPERATORS</span> <span class="p">(</span><span class="n">add</span> <span class="n">and</span> <span class="n">subtract</span><span class="p">,</span> <span class="k">return</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">))</span>
  <span class="n">str1</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="mf">123.456</span><span class="p">]</span>
  <span class="n">str2</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">AaBbCcDdEeFfGgHhIiJj</span> <span class="n">AaBbCcDdEeFfGgHhIiJj</span><span class="p">]</span>
  <span class="n">str1</span> <span class="o">+</span> <span class="n">str2</span> <span class="p">................</span> <span class="mf">123.456</span> <span class="n">AaBbCcDdEeFfGgHhIiJj</span> <span class="n">AaBbCcDdEeFfGgHhIiJj</span>
  <span class="n">str1</span> <span class="o">+</span> <span class="mi">20000</span> <span class="p">...............</span> <span class="mf">20123.455999999998</span>
  <span class="n">str1</span> <span class="o">-</span> <span class="mf">20.0</span> <span class="p">................</span> <span class="mf">-103.456</span>
  <span class="n">str2</span> <span class="o">-</span> <span class="s">&quot;Aa&quot;</span> <span class="p">(</span><span class="n">removes</span> <span class="n">ALL</span><span class="p">)</span> <span class="p">..</span> <span class="n">BbCcDdEeFfGgHhIiJj</span> <span class="n">BbCcDdEeFfGgHhIiJj</span>
  <span class="o">=============================================================================</span>
  <span class="n">OVERLOADED</span> <span class="n">OPERATORS</span> <span class="p">(</span><span class="n">multiply</span><span class="p">,</span> <span class="k">return</span> <span class="n">TYPE</span><span class="p">(</span><span class="n">STRING</span><span class="p">))</span>
  <span class="n">str1</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">AaBbCcDdEeFfGgHhIiJj</span><span class="p">]</span>
  <span class="n">str1</span> <span class="o">*</span> <span class="mi">3</span> <span class="p">...................</span> <span class="n">AaBbCcDdEeFfGgHhIiJjAaBbCcDdEeFfGgHhIiJjAaBbCcDdEeFfGgHhIiJj</span>
  <span class="o">=============================================================================</span>
  <span class="n">OVERLOADED</span> <span class="n">OPERATORS</span> <span class="p">(</span><span class="c1">//, return TYPE(STRING))</span>
  <span class="n">str1</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">String</span> <span class="nl">one</span><span class="p">:]</span>
  <span class="n">str2</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">String</span> <span class="nl">two</span><span class="p">:]</span>
  <span class="n">str1</span> <span class="c1">// str2 ................ String one:String two:</span>
  <span class="n">str1</span> <span class="c1">// 20000 ............... String one:20000</span>
  <span class="n">str1</span> <span class="c1">// 20.0 ................ String one:20.0</span>
  <span class="o">=============================================================================</span>
  <span class="n">OVERLOADED</span> <span class="n">OPERATORS</span> <span class="p">(</span><span class="n">logical</span> <span class="n">comparisons</span><span class="p">,</span> <span class="k">return</span> <span class="n">logical</span><span class="p">)</span>
  <span class="n">str1</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">abcdefghij</span><span class="p">]</span>
  <span class="n">str2</span><span class="o">%</span><span class="n">str</span> <span class="p">...................</span> <span class="p">[</span><span class="n">klmnopqrst</span><span class="p">]</span>
  <span class="o">:</span> <span class="n">EQ</span> <span class="n">LT</span> <span class="n">GT</span> <span class="n">LE</span> <span class="n">GE</span> <span class="n">NE</span>
  <span class="n">compare</span> <span class="n">str1</span> <span class="n">to</span> <span class="nl">str1</span>
  <span class="p">:</span>  <span class="n">T</span>  <span class="n">F</span>  <span class="n">F</span>  <span class="n">T</span>  <span class="n">T</span>  <span class="n">F</span>
  <span class="n">compare</span> <span class="n">str1</span> <span class="n">to</span> <span class="nl">str2</span>
  <span class="p">:</span>  <span class="n">F</span>  <span class="n">T</span>  <span class="n">F</span>  <span class="n">T</span>  <span class="n">F</span>  <span class="n">T</span>
  <span class="n">compare</span> <span class="n">str2</span> <span class="n">to</span> <span class="nl">str1</span>
  <span class="p">:</span>  <span class="n">F</span>  <span class="n">F</span>  <span class="n">T</span>  <span class="n">F</span>  <span class="n">T</span>  <span class="n">T</span>
  <span class="o">=============================================================================</span>
</code></pre></div>

<p>Expected output</p>
<h2 id="author">AUTHOR</h2>
<div class="codehilite"><pre><span></span><code>John S. Urban
</code></pre></div>

<h2 id="license">LICENSE</h2>
<div class="codehilite"><pre><span></span><code>Public Domain
</code></pre></div>
      <br>
    
  
    <div class="panel panel-default">
      <div class="panel-heading">
  <h3 class="panel-title">Uses</h3>
      </div>
      <ul class="list-group">
      
      <li class="list-group-item">
  <ul class="list-inline">
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
    <li><a href='../module/m_strings.html'>M_strings</a></li>
    
  </ul>
      </li>
      
      
      
      </ul>
    </div>
    

    
    

    <br>

    <section class="visible-xs visible-sm hidden-md">
      
<h3>Contents</h3>
 










<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#inters-1">Interfaces</a></h3></div>
  <div id="inters-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#interface-string">string</a>
      
    </div>
  </div>
</div>




<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#types-1">Derived Types</a></h3></div>
  <div id="types-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#type-string">string</a>
      
    </div>
  </div>
</div>



<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-1">Functions</a></h3></div>
  <div id="funcs-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/m_strings_oop.html#proc-p">p</a>
      
    </div>
  </div>
</div>











    </section>
    <br class="visible-xs visible-sm hidden-md">

    

    
    
    
    
    
    <section>
   <h2>Interfaces</h2>
   
     
<div class="panel panel-default">
  <div class="panel-heading codesum"><span class="anchor" id="interface-string"></span><h3>public interface <a href='../interface/string.html'>string</a>
    
  </h3></div>
  
  <ul class="list-group">
  
  
  
    <li class="list-group-item">
    
    
    <h3>
private function construct_from_fill(chars, len)
    
    
   
</h3>
    
    
    <h4>Arguments</h4>
    
      
      
<table class="table table-striped varlist">
<thead><tr><th>Type</th>
<th>Intent</th><th>Optional</th>
<th>Attributes</th><th></th><th>Name</th><th></th></thead>



<tbody>

  
  
  
  
<tr>
  
  <td><span class="anchor" ></span>character(len=*),</td>
  <td>intent(in),</td>
  <td>optional</td>
  
  <td></td><td>::</td>
  <td><strong>chars</strong></td><td></td>
  
</tr>

  
  
  
  
<tr>
  
  <td><span class="anchor" ></span>integer,</td>
  <td>intent(in),</td>
  <td>optional</td>
  
  <td></td><td>::</td>
  <td><strong>len</strong></td><td></td>
  
</tr>

</tbody>
</table>

      
    
    

  
  
  
  
     <h4>Return Value <small>type(<a href='../type/string.html'>string</a>)
  </small></h4>
  
    

    </li>
  
  
  </ul>
</div>

    
    </section>
  <br>
    

    
    
    
    <section>
     <h2>Derived Types</h2>
   
     
<div class="panel panel-default">
  <div class="panel-heading codesum"><span class="anchor" id="type-string"></span><h3>type, public :: <a href='../type/string.html'>string</a>
    
  </h3></div>
  <div class="panel-body">
    
     
     <h4>Components</h4>
    
<table class="table table-striped varlist">
<thead><tr><th>Type</th><th>Visibility</th>

<th>Attributes</th><th></th><th>Name</th><th></th><th>Initial</th><th></th></thead>



<tbody>

  
  
  
  
<tr>
  
  <td><span class="anchor" id="variable-str"></span>character(len=:),</td>
  
  <td>public,</td>
  <td>allocatable</td><td>::</td>
  <td><strong>str</strong></td><td></td><td></td><td></td>
  
</tr>

</tbody>
</table>

     
     
     <h4>Constructor</h4>
       
         
       
       <table class="table table-striped varlist">
      <tbody>
        
             
             
             
             <tr><td>private  function <strong>construct_from_fill</strong>(chars, len)</td><td></td></tr>
             
        
       </tbody>
       </table>
     
          
     
     <h4>Type-Bound Procedures</h4>
      <table class="table table-striped varlist">
      <tbody>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-adjustc'>adjustc</a></strong>  => oop_adjustc </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-adjustl'>adjustl</a></strong>  => oop_adjustl </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-adjustr'>adjustr</a></strong>  => oop_adjustr </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-atleast'>atleast</a></strong>  => oop_atleast </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-chars'>chars</a></strong>  => oop_switch </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-compact'>compact</a></strong>  => oop_compact </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-crop'>crop</a></strong>  => oop_crop </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-dble'>dble</a></strong>  => oop_dble </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-expand'>expand</a></strong>  => oop_expand </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-index'>index</a></strong>  => oop_index </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-init'>init</a></strong>  => init_string </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-int'>int</a></strong>  => oop_int </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-len'>len</a></strong>  => oop_len </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-len_trim'>len_trim</a></strong>  => oop_len_trim </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-lenset'>lenset</a></strong>  => oop_lenset </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-lower'>lower</a></strong>  => oop_lower </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-match'>match</a></strong>  => oop_matchw </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-noesc'>noesc</a></strong>  => oop_noesc </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-notabs'>notabs</a></strong>  => oop_notabs </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28%2A%29'>operator(*)</a></strong>  => string_multiply_value </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28%2B%29'>operator(+)</a></strong>  => string_plus_value </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28-%29'>operator(-)</a></strong>  => string_minus_value </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28SLASHSLASH%29'>operator(//)</a></strong>  => string_append_value </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28SLASH%3D%29'>operator(/=)</a></strong>  => ne </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28lt%29'>operator(<)</a></strong>  => lt </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28lt%3D%29'>operator(<=)</a></strong>  => le </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28%3D%3D%29'>operator(==)</a></strong>  => eq </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28gt%29'>operator(>)</a></strong>  => gt </td>
       <td></td></tr>
      
       <tr><td>generic, public :: <strong><a href='../type/string.html#boundprocedure-operator%28gt%3D%29'>operator(>=)</a></strong>  => ge </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-real'>real</a></strong>  => oop_real </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-reverse'>reverse</a></strong>  => oop_reverse </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-substitute'>substitute</a></strong>  => oop_substitute </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-transliterate'>transliterate</a></strong>  => oop_transliterate </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-trim'>trim</a></strong>  => oop_trim </td>
       <td></td></tr>
      
       <tr><td>procedure, public :: <strong><a href='../type/string.html#boundprocedure-upper'>upper</a></strong>  => oop_upper </td>
       <td></td></tr>
      
       </tbody>
       </table>
     
  </div>
</div>

     
    </section>
  <br>
    
    
     
    <section>
    <h2>Functions</h2>
    
    
  <div class="panel panel-default">
  <div class="panel-heading codesum"><span class="anchor" id="proc-p"></span><h3>
public function <a href='../proc/p.html'>p</a>(self) result(string_out)
    
    
   
</h3></div>
  <div class="panel-body">
       
    
    
    <h4>Arguments</h4>
    
      
      
<table class="table table-striped varlist">
<thead><tr><th>Type</th>
<th>Intent</th><th>Optional</th>
<th>Attributes</th><th></th><th>Name</th><th></th></thead>



<tbody>

  
  
  
  
<tr>
  
  <td><span class="anchor" ></span>class(<a href='../type/string.html'>string</a>),</td>
  <td>intent(in)</td>
  <td></td>
  
  <td></td><td>::</td>
  <td><strong>self</strong></td><td></td>
  
</tr>

</tbody>
</table>

      
    
    

  
  
  
  
     <h4>Return Value <small>character(len=len(self%str))
  </small></h4>
  
    

  </div>
  </div>

    
    </section>
    <br>
    

    
    
    
    </div>
  </div>

  
    <hr>    
    </div> <!-- /container -->
    <footer>
      <div class="container">
      <div class="row">
        <div class="col-xs-6 col-md-4"><p>&copy; 2022 
                                          </p></div>
        <div class="col-xs-6 col-md-4 col-md-push-4">
          <p class="text-right">
            Documentation generated by 
            <a href="https://github.com/cmacmackin/ford">FORD</a>
             on 2022-01-16 22:32  
          </p>
        </div>
        <div class="col-xs-12 col-md-4 col-md-pull-4"><p class="text-center"> M_strings was developed by John S. Urban</p></div>
      </div>
      <br>
      </div> <!-- /container -->    
    </footer>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
<!--
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
-->
    <script src="../js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../js/ie10-viewport-bug-workaround.js"></script>

    <!-- MathJax JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } },
        jax: ['input/TeX','input/MathML','output/HTML-CSS'],
        extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']
      });
    </script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
    
    <script src="../tipuesearch/tipuesearch_content.js"></script>
    <script src="../tipuesearch/tipuesearch_set.js"></script>
    <script src="../tipuesearch/tipuesearch.js"></script>
    
    
  </body>
</html>